
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Liquibook</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Jeff Schmitz">

    <!-- Le styles -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/liquibook.css" rel="stylesheet">
    <style>
      body {
        padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
      }
    </style>
    <link href="css/bootstrap-responsive.min.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="../assets/ico/favicon.png">
  </head>

  <body>

    <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="brand" href="index.html">Liquibook</a>
          <div class="nav-collapse collapse">
            <ul class="nav">
              <li><a href="index.html">Home</a></li>
              <li><a href="fast.html">Fast</a></li>
              <li class="active"><a href="flexible.html">Flexible</a></li>
              <li><a href="easy.html">Easy</a></li>
              <li><a href="get-started.html">Get Started</a></li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>

    <div class="container">

      <h1>Liquibook is flexible.  <span class="highlight">Acrobat Flexible</span></h1>
      <p>Liquibook is desingned to meet a wide array of use cases.</p>
      <p>This means you get to choose:</p>

      <ul>
        <li>Your Order class</li>
        <li>Your pointer preference (smart or standard)</li>
        <li>Your threading model</li>
        <li>Your identifiers</li>
        <li>Your downstream handling</li>
        <li>Your add-ons</li>
      </ul>

      <h2>How is it so Flexible?</h2>

      <p>Your Order class is used, it must only implement a trivial interface.  If you don't have one, a sample one is included.</p>

      <p>The OrderBook class is a template, which accepts a pointer type as a parameter.  You can use any pointer type which dereferences using the -&gt; operator.</p>

      <p>Liquibook is not an application, but a library, usable within your application.  As such, it has no synchronization, nor background threads.  You choose whether to have mutliple threads and how to synchronize them.</p>

      <p>Liquibook does not use order IDs, user IDs, account IDs, or symbols, just Order pointers.  Any mapping from order ID to pointer is done outside of Liquibook.</p>

      <p>Liquibook further assumes all orders given to an order book are for the order book's symbol, and mapping from symbol to order book is  done outside of Liquibook.</p>

      <p>Liquibook does none of the downstream handling, such as feed publishing, resulting from a trade or a quote.  After all, that is feed-specific.  Instead, liquibook queues up callbacks, which you handle in your code.</p>

      <p>Liquibook includes optional add-on classes, for depth/BBO tracking, that can easily be integrated in the handling of callbacks.  For an example see SimpleOrderBook in the impl directory.</p>

    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="js/jquery-1.9.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

